package com.bestcem.xm.ticket.controller.param.ticket.config;

import com.bestcem.xm.ticket.controller.param.ticket.config.createParam.ConditionParam;
import com.bestcem.xm.ticket.controller.param.ticket.config.createParam.FollowConfigParam;
import com.bestcem.xm.ticket.controller.param.ticket.config.createParam.TemplateDetailFieldParam;
import com.bestcem.xm.ticket.controller.param.ticket.config.createParam.WayParam;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.List;

/**
 * @author liheng
 * @version v1.0
 * @date 2021/8/19 15:35
 */
@Data
public class CreateConfigParam {

    /**
     * 用户id，从token中获取
     */
    private String userId;
    /**
     * 组织id，从token中获取
     */
    private String orgId;

    /**
     * 规则类型
     */
    @JsonProperty(value = "rtype")
    private Integer rType;

    /**
     * 邮箱id
     */
    @JsonProperty(value = "smtp_id")
    private String smtpId;

    /**
     * condition
     */
    private ConditionParam condition;

    /**
     * 是否需要跟进处理
     */
    private Boolean needDeal;

    /**
     * 关闭工单时，是否需要至少有一次跟进记录
     */
    private Boolean needRecord;

    /**
     * 预警id(已弃用)
     */
    private String alertId;

    /**
     * 是否通知管理员
     */
    private Boolean remindAdmin;

    /**
     * 工单规则状态
     */
    private Integer state;

    /**
     * 问卷编号
     */
    private String surveyId;

    /**
     * 处理模板id
     */
    private String ticketTemplateId;

    /**
     * 工单详情内容
     */
    private List<TemplateDetailFieldParam> templateDetailFields;

    /**
     * 通知配置
     */
    private List<NotifyConfigParam> ticketNotifyConfig;

    /**
     * 自定义字段
     */
    private List<TicketTemplateParam> ticketTemplate;

    /**
     * 工单规则标题
     */
    private String title;

    /**
     * 通知渠道
     */
    private WayParam ways;

    /**
     * 工单流程
     */
    private List<FollowConfigParam> followConfig;

    /**
     * 通知配置信息，通知用户和通知手机邮箱配置
     */
    private OnlyNotifyConfigParam onlyNotifyConfig;

    /**
     * 状态rule
     * 页面上的触发条件
     */
    @JsonProperty("statusruleList")
    private List<TicketRuleParam> statusRuleList;

    /**
     * 下面的都是不知道会不会传的一些参数
     */

    /**
     * 工单跟进流程
     */
    private TicketFollowParam ticketFollow;

    /**
     * 更多设置（二次投放任务相关）
     */

    private TicketStatusChangeParam ticketStatusChange;

}
